package controlador;

import java.util.*;

import beans.*;
import exceptions.*;
import negocio.*;
import observer.Observable;

public class Negocio extends Observable
{
	private static Negocio negocio;

	private ArrayList<Alumno> alumnos;
	
	private Negocio() {
		this.alumnos = new ArrayList<Alumno>();
	}

	public static Negocio getNegocio()
	{
		if(negocio==null)
			negocio = new Negocio();
		return negocio;
	}
	
	public void agregarAlumno(AlumnoVO alumno) throws AlumnoException
	{
		Alumno a = new Alumno(alumno.getLegajo(), alumno.getNombre(), alumno.getEstado());
		if(alumnos.contains(a))
			throw new AlumnoException("El Alumno ya existe");
		else
		{
			alumnos.add(a);
			this.notifyObservers();
		}
	}

	public Alumno obtenerAlumnoPorNumero(int legajo) throws AlumnoException
	{
		for(Alumno alumno: alumnos)
		{
			if(alumno.getLegajo()==legajo)
				return alumno;
		}
		throw new AlumnoException("El Alumno no fue encontrado");
	}
	
	public ArrayList<AlumnoVO> getAlumnos() {
		Alumno aux;
		ArrayList<AlumnoVO> coleccion = new ArrayList<AlumnoVO>();
		
		for(Iterator<Alumno> i = alumnos.iterator(); i.hasNext();)
		{
			aux = i.next();
			coleccion.add(new AlumnoVO(aux.getLegajo(), aux.getNombre(),aux.getEstado()));
		}
		return coleccion;
	}
}
